|
 |
Dentro il Sistema |
INDIRIZZI BASE
[7 di 166] |
 | Il Sistema Operativo e i nostri
programmi sono sempre in grado di conoscere il numero di porte
parallele presenti nel sistema, consultando le variabili di
sistema caricate dal BIOS nelle fasi preliminari che seguono l'accensione
del computer. |
 |
Non appena il nostro
computer viene acceso il
processore è obbligato a saltare
alla locazione FFFF0H
posto nella memoria BIOS
ospitata dalla scheda madre; da questo indirizzo mette in esecuzione
la
procedura di POST (Power-On-Self-Test).
Il compito di questa procedura è quello di verificare lo stato del
computer, ispezionando con meticolosità ogni dispositivo disponibile (tra
cui le eventuali porte parallele) e annotando tutto in una zona
RAM riservata di grande importanza, detta
Area di Comunicazione BIOS,
di solito allocata nelle prime 260 (circa) locazioni della Ram
convenzionale, certamente a
partire dall'indirizzo 00400H .
Tra l'altro la procedura
POST
provvede a scrivere il valore
1234H
nella locazione
00472H (detta
Reset State Flag)
per evitare di ripetere l'indagine in caso di ripartenza a caldo (warm
boot),
cioè dopo un reset software prodotto dalla pressione simultanea dei tasti
Ctrl-Alt-Del
|
 | Naturalmente non c'è niente di magico: la
procedura POST riconosce la presenza dei circuiti di una porta parallela
semplicemente cercando di scrivere nei suoi
Registri; è quindi necessario
conoscere l'indirizzo di I/O di ciascuna
di esse. |
 | Il Sistema riserva, per le porte parallele,
3 intervalli di 8 indirizzi
di I/O ciascuno, cioè ne riconosce
solo fino a 3:
|
03BCH
÷ 03BFH |
Porta Parallela n°1
- su scheda grafica |
|
0378H
÷ 037FH |
Porta Parallela
n°2 |
|
0278H
÷ 027FH |
Porta Parallela
n°3 |
|
 | La procedura POST verifica la
presenza delle porte parallele applicando in stretta sequenza
i 3 intervalli di indirizzi
di I/O della tabella; al primo gruppo trovato viene associato il
numero 0, al secondo il numero 1,
e così via. |
 | La prova consiste nello scrivere
il byte 0AAH nel primo
indirizzo di ciascuna serie, leggendolo
di ritorno dal medesimo indirizzo; naturalmente solo se il dato
ricevuto è ancora 0AAH la porta è
presente nel sistema. |
 | Da notare che la particolare scelta rende
minime le probabilità d'errore: 0AAH
è infatti 10101010 in binario, una
alternanza di bit altamente improbabile. |
 |
In seguito il DOS riconosce la porta 0 come LPT1,
la 1 come LPT2, e così via... |
 | Un tempo ormai remoto era possibile trovare
una porta parallela tra i circuiti della scheda grafica; si tratta di
antichissime schede monocromatiche,
come la MDA (Monochrome Display Adapter)
o la gloriosa HGC (Hercules Graphics
Card). Alle porte di questo strano connubio sono associati gli
indirizzi della prima serie, per cui
03BCH
÷ 03BFH
sono address di I/O praticamente
non più utilizzati. |
 | Oggi la porta parallela è, di norma, integrata
nella scheda madre; poiché l'indagine sul primo gruppo di indirizzi non
può dare esito positivo, sarà certamente il secondo (0378H
÷ 037FH)
ad essere associato alla porta0 (per il
BIOS) o LPT1 (per il DOS).
|
 | In ogni caso possiamo notare che il primo range prevede
solo 4 indirizzi, mentre gli altri 2 ne prevedono
8; ciononostante sono di norma
utilizzati solo i primi 3 indirizzi di
ciascun gruppo (03BCH,
03BDH,
03BEH o 0378H,
0379H, 037AH
o 0278H, 0279H,
027AH). |
©
2001-2006 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|